package Menus;
import java.awt.Color;
import java.awt.Graphics;
import java.util.ArrayList;
import java.util.List;

import Constructions.*;
import FrameWork.Menu;
import Main.SpaceGame;
import World.World;

public class BuildMenu extends Menu
{
	ConstructionType activeType = null;
	boolean cursorRequirement = true;
	int level = 1;
	int pixXPos = SpaceGame.windowXSize-200;
	int pixYPos = 100;
	int width = 200;
	int height = SpaceGame.windowYSize-100;
	public BuildMenu()
	{
		World.showingPower = true;
	}

	@Override
	public void draw(Graphics g) 
	{
		g.translate(pixXPos, pixYPos);
		
		g.setColor(Color.LIGHT_GRAY);
		g.fillRect(0, 0, width, height);
		g.setColor(Color.DARK_GRAY);
		g.fillRect(5, 5, width-10, height-10);
		
		List<String> strings = new ArrayList<String>();
		List<Color>  colors= new ArrayList<Color>();
		
		colors.add(checkColor(null));
		strings.add("d");
		colors.add(Color.cyan);
		strings.add("- Delete");
		
		colors.add(checkColor(ConstructionType.LifeSupport));
		strings.add("l");
		colors.add(Color.cyan);
		strings.add("- Life Support System");
		
		colors.add(checkColor(ConstructionType.AsteroidMiner));
		strings.add("m");
		colors.add(Color.cyan);
		strings.add("- Asteroid Miner");
		
		colors.add(checkColor(ConstructionType.Door));
		strings.add("h");
		colors.add(Color.cyan);
		strings.add("- Blast Door");
		
		colors.add(checkColor(ConstructionType.TeleportPad));
		strings.add("t");
		colors.add(Color.cyan);
		strings.add("- Teleport Pad");
		
		colors.add(checkColor(ConstructionType.PowerConnector));
		strings.add("p");
		colors.add(Color.cyan);
		strings.add("- Power Connector");
		
		colors.add(checkColor(ConstructionType.SolarPanel));
		strings.add("s");
		colors.add(Color.cyan);
		strings.add("- Solar Panel");
		
		colors.add(checkColor(ConstructionType.TorpedoBay));
		strings.add("w");
		colors.add(Color.cyan);
		strings.add("- Torpedo Bay");
		
		colors.add(checkColor(ConstructionType.Recycler));
		strings.add("r");
		colors.add(Color.cyan);
		strings.add("- Recycler");
		
		colors.add(checkColor(ConstructionType.Morgue));
		strings.add("i");
		colors.add(Color.cyan);
		strings.add("- Morgue");
		
		colors.add(checkColor(ConstructionType.PPS));
		strings.add("q");
		colors.add(Color.cyan);
		strings.add("- PPS");
		
		printMultiColorLines(g, strings, colors, 2);
		
		g.translate(-pixXPos, -pixYPos);
	}

	@Override
	public boolean requiresCursor() 
	{
		return cursorRequirement;
	}

	@Override
	public void setRequiresCursor(boolean f) 
	{
		this.cursorRequirement = f;
	}

	@Override
	public int getLevel() 
	{
		return level;
	}
	
	public Color checkColor(ConstructionType type)
	{
		if (this.activeType == type)
			return Color.green;
		else
			return Color.red;
	}
	
	public void setType(ConstructionType type)
	{
		this.activeType = type;
	}
	
	public ConstructionType getType()
	{
		return activeType;
	}
}
